﻿using GPS.MODELS;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using GPS.DataAccessLayer;
using AutoMapper;
using PagedList;
using GPS.ENTITYS;
using GPS.COMMON;
using System.IO;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using Oracle.ManagedDataAccess.Client;
using System.Data;
using Microsoft.AspNet.Identity;
using NPOI.HSSF.UserModel;
using OfficeOpenXml;
using System.Web.UI.WebControls;
using System.Web.UI;
using System.Text;
using GPS.GPS_DAL;

namespace GPS.Controllers.GPS_NghiepVu
{
    public class GPS_KetQuaTotNghiepController : Controller
    {
        //
        // GET: /GPS_KetQuaTotNghiep/

        #region oinit
        DbContextHelper<GPS_NVContext> _db = Singleton<DbContextHelper<GPS_NVContext>>.Inst;
        public GPS.MODELS.ApplicationUser getCurrentUser()
        {
            ApplicationDbContext dbUser = new ApplicationDbContext();
            string userId = User.Identity.GetUserId();
            ApplicationUser _currentUser = dbUser.Users.Find(userId);
            return _currentUser;
        }

        public void initialCategorySearchAction(ViewModelKetQuaTotNghiep viewModel)
        {
            string dvgtvt = this.getCurrentUser().MA_TINHTP;
            ViewBag.checkuser = dvgtvt;
            if (dvgtvt != "40")
                viewModel.pDVGTVT_MA = dvgtvt;
            //string getdvgtvt_Ma = GPS.DAL.Check_User.CheckUser(this.getCurrentUser().MA_TINHTP, viewModel.pDVGTVT_MA);
            //viewModel.pDVGTVT_MA = getdvgtvt_Ma;
            ViewBag.DTTN_QDs = new SelectList(_db.Filter<DDTTN_QD>(o => o.DDTTN_QD_DVGTVT_MA == viewModel.pDVGTVT_MA && o.DDTTN_QD_TT == 1), "ID", "DDTTN_QD_TENKHOA");
            var khoahocs = Singleton<GPS_HocVienDAO>.Inst.GPS_GETDS_KHOAHOC_HOCVIEN1(viewModel.pDVGTVT_MA, viewModel.pKH_MA);
            ViewBag.KH_MAs = new SelectList(khoahocs, "KH_MA", "KH_TEN");

            ViewBag.DVGTVT_MAs = new SelectList(_db.Filter<SDONVIGTVT>(o => (o.DVGTVT_MAQL == dvgtvt || o.DVGTVT_MA == dvgtvt) && o.DVGTVT_ACTIVE == "1"), "DVGTVT_MA", "DVGTVT_TEN");
            ViewBag.DEFAULT_VALUE_DDL = CategoryCommon.DEFAULT_VALUE_DDL;
        }

        [HttpPost]
        public ActionResult getQDTN_MAs(string ma_DVGT)
        {
            var districts = _db.Filter<DDTTN_QD>(o => o.DDTTN_QD_DVGTVT_MA == ma_DVGT && o.DDTTN_QD_TT == 1).Select(a => "<option value='" + a.ID + "'>" + a.DDTTN_QD_TENKHOA + "</option>");
            return Content(string.Join("", districts));
        }

        #endregion

        #region Index
        public ActionResult Index(ViewModelKetQuaTotNghiep SearchModel, int? currentPage)
        {
            initialCategorySearchAction(SearchModel);
            List<CrudmodelKetQuaTotNghiep> model = GetListSearchData(SearchModel);
            ViewBag.TotalRow = model.Count();

            if (SearchModel.ExportButton == "In danh sách học viên dự tốt nghiệp")
            {
                List<Export_DS_HVDuTotNghiep> _modelDS_HocVienDuTotNghiep = GetListData_DsHocVienDuTotNghiep(SearchModel);
                FileInfo template = new FileInfo(Server.MapPath(@"\Templates\GPS_Excel\DanhSachHocVienDuTotNghiep.xlsx"));
                FileInfo newFile = new FileInfo(Server.MapPath(@"\Templates\GPS_Excel\CB_DonViHetHanGiayPhepNEW.xlsx"));
                using (OfficeOpenXml.ExcelPackage excelPackage = new OfficeOpenXml.ExcelPackage(newFile, template))
                {
                    ExcelWorkbook myWorkbook = excelPackage.Workbook;
                    ExcelWorksheet myWorksheet = myWorkbook.Worksheets["Sheet1"];

                    int recordIndex = 8;
                    foreach (var item in _modelDS_HocVienDuTotNghiep)
                    {
                        myWorksheet.Cells[recordIndex, 1].Value = item.STT.ToString();
                        myWorksheet.Cells[recordIndex, 2].Value = item.HV_HOTEN;
                        myWorksheet.Cells[recordIndex, 3].Value = item.HV_NGAYSINH == null ? "" : item.HV_NGAYSINH.ToString();
                        myWorksheet.Cells[recordIndex, 4].Value = item.HV_NOITT == null ? "" : item.HV_NOITT.ToString(); ;
                        myWorksheet.Cells[recordIndex, 5].Value = item.HV_SOCMT == null ? "" : item.HV_SOCMT;
                        myWorksheet.Cells[recordIndex, 6].Value = item.DTTN_HGPLX_MA == null ? "" : item.DTTN_HGPLX_MA;
                        recordIndex++;
                    }
                    myWorksheet.Cells[1, 1].Value = SearchModel.pDVGTVT_MA == null ? "" : _db.GetOne<SDONVIGTVT>(x => x.DVGTVT_MA == SearchModel.pDVGTVT_MA).DVGTVT_TEN; ;
                    myWorksheet.Cells[5, 1].Value = string.Format("Khóa học {0}", SearchModel.pKH_MA);
                    excelPackage.Save();
                }
                string contentType = string.Empty;
                string CurrentFileName = Server.MapPath(@"\Templates\GPS_Excel\CB_DonViHetHanGiayPhepNEW.xlsx");
                if (CurrentFileName.Contains(".xlsx"))
                {
                    contentType = "application/msexcel";
                }
                return File(CurrentFileName, contentType, string.Format("DanhSachHocVienDuTotNghiep_{0}_{1}.xlsx", SearchModel.pKH_MA, DateTime.Now.ToShortDateString().Replace("/", "_")));

            }

            else if (SearchModel.ExportButton == "In danh sách")
            {
                switch (SearchModel.ddlValueIn)
                {
                    case "Học viên vắng thi tốt nghiệp - Lý Thuyết":
                        {
                            DataSet data_ttn = GetLstDanhSach_VangThi_LT(SearchModel);
                            if (data_ttn == null)
                                return View(SearchModel);
                            FileInfo template = new FileInfo(Server.MapPath(@"\Templates\GPS_Excel\DanhSachVangThiTotNghiep_LyThuyet.xlsx"));
                            FileInfo newFile = new FileInfo(Server.MapPath(@"\Templates\GPS_Excel\CB_DonViHetHanGiayPhepNEW.xlsx"));
                            string strDVGTVT_TEN = "", strKH_TEN = "";
                            using (OfficeOpenXml.ExcelPackage excelPackage = new OfficeOpenXml.ExcelPackage(newFile, template))
                            {
                                ExcelWorkbook myWorkbook = excelPackage.Workbook;
                                ExcelWorksheet myWorksheet = myWorkbook.Worksheets["Sheet1"];

                                for (int i = 0; i < data_ttn.Tables[0].Rows.Count; i++)
                                {
                                    strDVGTVT_TEN = data_ttn.Tables[0].Rows[i]["DVGTVT_TEN"] == null ? "" : data_ttn.Tables[0].Rows[i]["DVGTVT_TEN"].ToString();
                                    strKH_TEN = data_ttn.Tables[0].Rows[i]["DDTTN_QD_TENKHOA"].ToString();
                                    myWorksheet.Cells[1, 1].Value = strDVGTVT_TEN;
                                    myWorksheet.Cells[5, 1].Value = string.Format("Hôm nay, ngày {0} tháng {1} năm {2}, vào hồi 11 giờ 30 phút. Hội đồng thi tốt nghiệp cấp chứng chỉ sơ cấp nghề cho học viên lái xe ô tô {3} - {4} và chưa dự thi, thi lại được thành lập theo quyết định số {5} {6} của Tổng giám đốc {7}, Hội đồng thi đã họp toàn thể xét công nhận kỳ thi tốt nghiệp, thành phần gồm có:"
                                        , DateTime.Today.Day.ToString()
                                        , DateTime.Today.Month.ToString()
                                        , DateTime.Today.Year.ToString()
                                        , data_ttn.Tables[0].Rows[i]["DDTTN_QD_TENKHOA"].ToString()
                                        , data_ttn.Tables[0].Rows[i]["DS_KH_TEN"].ToString()
                                        , data_ttn.Tables[0].Rows[i]["DDTTN_QD_SO_QD"].ToString()
                                        , data_ttn.Tables[0].Rows[i]["DDTTN_QD_NGAY_QD"].ToString()
                                        , data_ttn.Tables[0].Rows[i]["DVGTVT_TEN"].ToString());
                                }
                                StringBuilder strHoiDong = new StringBuilder();
                                strHoiDong.Append(string.Format("Hội đồng thi tốt nghiệp: {0}", Environment.NewLine));
                                for (int i = 0; i < data_ttn.Tables[1].Rows.Count; i++)
                                {
                                    strHoiDong.Append(string.Format("{0}. {1}           {2} {3}"
                                        , data_ttn.Tables[1].Rows[i]["STT_HD"] == null ? "" : data_ttn.Tables[1].Rows[i]["STT_HD"].ToString()
                                        , data_ttn.Tables[1].Rows[i]["SHV_HOTEN"] == null ? "" : data_ttn.Tables[1].Rows[i]["SHV_HOTEN"].ToString()
                                        , data_ttn.Tables[1].Rows[i]["CVSHV_TEN"] == null ? "" : data_ttn.Tables[1].Rows[i]["CVSHV_TEN"].ToString()
                                        , Environment.NewLine));
                                }
                                strHoiDong.Append("Và các cán bộ trong tổ chấm thi tốt nghiệp.");
                                myWorksheet.Cells[6, 1].Value = strHoiDong == null ? "" : strHoiDong.ToString();
                                int record_DsHocVien = 10;
                                // int rowstart = 10;
                                for (int i = 0; i < data_ttn.Tables[2].Rows.Count; i++)
                                {
                                    myWorksheet.Cells[record_DsHocVien, 1].Value = data_ttn.Tables[2].Rows[i]["STT"] == null ? "" : data_ttn.Tables[2].Rows[i]["STT"].ToString();
                                    myWorksheet.Cells[record_DsHocVien, 2].Value = data_ttn.Tables[2].Rows[i]["HV_HOTEN"] == null ? "" : data_ttn.Tables[2].Rows[i]["HV_HOTEN"].ToString();
                                    myWorksheet.Cells[record_DsHocVien, 3].Value = data_ttn.Tables[2].Rows[i]["HV_SBD"] == null ? "" : data_ttn.Tables[2].Rows[i]["HV_SBD"].ToString();
                                    myWorksheet.Cells[record_DsHocVien, 4].Value = data_ttn.Tables[2].Rows[i]["HV_NOITT"] == null ? "" : data_ttn.Tables[2].Rows[i]["HV_NOITT"].ToString();
                                    myWorksheet.Cells[record_DsHocVien, 5].Value = data_ttn.Tables[2].Rows[i]["DTTN_HGPLX_MA"] == null ? "" : data_ttn.Tables[2].Rows[i]["DTTN_HGPLX_MA"].ToString();
                                    //myWorksheet.Cells[record_DsHocVien, 6].Value = data_ttn.Tables[2].Rows[i]["GHICHU"] == null ? "" : data_ttn.Tables[2].Rows[i]["GHICHU"].ToString();
                                    record_DsHocVien++;
                                }
                                excelPackage.Save();
                            }
                            string contentType = string.Empty;
                            string CurrentFileName = Server.MapPath(@"\Templates\GPS_Excel\CB_DonViHetHanGiayPhepNEW.xlsx");
                            if (CurrentFileName.Contains(".xlsx"))
                            {
                                contentType = "application/msexcel";
                            }
                            return File(CurrentFileName, contentType, string.Format("BienBanHocVienVangThiLyThuyet_{0}_{1}_{2}.xlsx", strDVGTVT_TEN, strKH_TEN, DateTime.Now.ToShortDateString().Replace("/", "_")));

                        }

                    case "Học viên vắng thi tốt nghiệp - Thực hành hình":
                        {
                            DataSet data_ttn = GetLstDanhSach_VangThi_TH(SearchModel);
                            if (data_ttn == null)
                                return View(SearchModel);
                            FileInfo template = new FileInfo(Server.MapPath(@"\Templates\GPS_Excel\DanhSachVangThiTotNghiep_ThucHanhHinh.xlsx"));
                            FileInfo newFile = new FileInfo(Server.MapPath(@"\Templates\GPS_Excel\CB_DonViHetHanGiayPhepNEW.xlsx"));
                            string strDVGTVT_TEN = "", strKH_TEN = "";
                            using (OfficeOpenXml.ExcelPackage excelPackage = new OfficeOpenXml.ExcelPackage(newFile, template))
                            {
                                ExcelWorkbook myWorkbook = excelPackage.Workbook;
                                ExcelWorksheet myWorksheet = myWorkbook.Worksheets["Sheet1"];

                                for (int i = 0; i < data_ttn.Tables[0].Rows.Count; i++)
                                {
                                    strDVGTVT_TEN = data_ttn.Tables[0].Rows[i]["DVGTVT_TEN"] == null ? "" : data_ttn.Tables[0].Rows[i]["DVGTVT_TEN"].ToString();
                                    strKH_TEN = data_ttn.Tables[0].Rows[i]["DDTTN_QD_TENKHOA"].ToString();
                                    myWorksheet.Cells[1, 1].Value = strDVGTVT_TEN;
                                    myWorksheet.Cells[5, 1].Value = string.Format("Hôm nay, ngày {0} tháng {1} năm {2}, vào hồi 11 giờ 30 phút. Hội đồng thi tốt nghiệp cấp chứng chỉ sơ cấp nghề cho học viên lái xe ô tô {3} - {4} và chưa dự thi, thi lại được thành lập theo quyết định số {5} {6} của Tổng giám đốc {7}, Hội đồng thi đã họp toàn thể xét công nhận kỳ thi tốt nghiệp, thành phần gồm có:"
                                        , DateTime.Today.Day.ToString()
                                        , DateTime.Today.Month.ToString()
                                        , DateTime.Today.Year.ToString()
                                        , data_ttn.Tables[0].Rows[i]["DDTTN_QD_TENKHOA"].ToString()
                                        , data_ttn.Tables[0].Rows[i]["DS_KH_TEN"].ToString()
                                        , data_ttn.Tables[0].Rows[i]["DDTTN_QD_SO_QD"].ToString()
                                        , data_ttn.Tables[0].Rows[i]["DDTTN_QD_NGAY_QD"].ToString()
                                        , data_ttn.Tables[0].Rows[i]["DVGTVT_TEN"].ToString());
                                }
                                StringBuilder strHoiDong = new StringBuilder();
                                strHoiDong.Append(string.Format("Hội đồng thi tốt nghiệp: {0}", Environment.NewLine));
                                for (int i = 0; i < data_ttn.Tables[1].Rows.Count; i++)
                                {
                                    strHoiDong.Append(string.Format("{0}. {1}           {2} {3}"
                                        , data_ttn.Tables[1].Rows[i]["STT_HD"] == null ? "" : data_ttn.Tables[1].Rows[i]["STT_HD"].ToString()
                                        , data_ttn.Tables[1].Rows[i]["SHV_HOTEN"] == null ? "" : data_ttn.Tables[1].Rows[i]["SHV_HOTEN"].ToString()
                                        , data_ttn.Tables[1].Rows[i]["CVSHV_TEN"] == null ? "" : data_ttn.Tables[1].Rows[i]["CVSHV_TEN"].ToString()
                                        , Environment.NewLine));
                                }
                                strHoiDong.Append("Và các cán bộ trong tổ chấm thi tốt nghiệp.");
                                myWorksheet.Cells[6, 1].Value = strHoiDong == null ? "" : strHoiDong.ToString();
                                int record_DsHocVien = 10;
                                // int rowstart = 10;
                                for (int i = 0; i < data_ttn.Tables[2].Rows.Count; i++)
                                {
                                    myWorksheet.Cells[record_DsHocVien, 1].Value = data_ttn.Tables[2].Rows[i]["STT"] == null ? "" : data_ttn.Tables[2].Rows[i]["STT"].ToString();
                                    myWorksheet.Cells[record_DsHocVien, 2].Value = data_ttn.Tables[2].Rows[i]["HV_HOTEN"] == null ? "" : data_ttn.Tables[2].Rows[i]["HV_HOTEN"].ToString();
                                    myWorksheet.Cells[record_DsHocVien, 3].Value = data_ttn.Tables[2].Rows[i]["HV_SBD"] == null ? "" : data_ttn.Tables[2].Rows[i]["HV_SBD"].ToString();
                                    myWorksheet.Cells[record_DsHocVien, 4].Value = data_ttn.Tables[2].Rows[i]["HV_NOITT"] == null ? "" : data_ttn.Tables[2].Rows[i]["HV_NOITT"].ToString();
                                    myWorksheet.Cells[record_DsHocVien, 5].Value = data_ttn.Tables[2].Rows[i]["DTTN_HGPLX_MA"] == null ? "" : data_ttn.Tables[2].Rows[i]["DTTN_HGPLX_MA"].ToString();
                                    // myWorksheet.Cells[record_DsHocVien, 6].Value = data_ttn.Tables[2].Rows[i]["GHICHU"] == null ? "" : data_ttn.Tables[2].Rows[i]["GHICHU"].ToString();
                                    record_DsHocVien++;
                                }
                                excelPackage.Save();
                            }
                            string contentType = string.Empty;
                            string CurrentFileName = Server.MapPath(@"\Templates\GPS_Excel\CB_DonViHetHanGiayPhepNEW.xlsx");
                            if (CurrentFileName.Contains(".xlsx"))
                            {
                                contentType = "application/msexcel";
                            }
                            return File(CurrentFileName, contentType, string.Format("BienBanHocVienVangThiThucHanhHinh_{0}_{1}_{2}.xlsx", strDVGTVT_TEN, strKH_TEN, string.Concat(DateTime.Now.ToShortDateString().Replace("/", "_"))));

                        }

                    case "Học Viên trượt tốt nghiêp":
                        {
                            DataSet data_ttn = GetLstDanhSach_VangThi_TH(SearchModel);
                            if (data_ttn == null)
                                return View(SearchModel);
                            FileInfo template = new FileInfo(Server.MapPath(@"\Templates\GPS_Excel\DanhSachTruotThiTotNghiep.xlsx"));
                            FileInfo newFile = new FileInfo(Server.MapPath(@"\Templates\GPS_Excel\CB_DonViHetHanGiayPhepNEW.xlsx"));
                            string strDVGTVT_TEN = "", strKH_TEN = "";
                            using (OfficeOpenXml.ExcelPackage excelPackage = new OfficeOpenXml.ExcelPackage(newFile, template))
                            {
                                ExcelWorkbook myWorkbook = excelPackage.Workbook;
                                ExcelWorksheet myWorksheet = myWorkbook.Worksheets["Sheet1"];

                                for (int i = 0; i < data_ttn.Tables[0].Rows.Count; i++)
                                {
                                    strDVGTVT_TEN = data_ttn.Tables[0].Rows[i]["DVGTVT_TEN"] == null ? "" : data_ttn.Tables[0].Rows[i]["DVGTVT_TEN"].ToString();
                                    strKH_TEN = data_ttn.Tables[0].Rows[i]["DDTTN_QD_TENKHOA"].ToString();
                                    myWorksheet.Cells[1, 1].Value = strDVGTVT_TEN;
                                    myWorksheet.Cells[5, 1].Value = string.Format("Hôm nay, ngày {0} tháng {1} năm {2}, vào hồi 11 giờ 30 phút. Hội đồng thi tốt nghiệp cấp chứng chỉ sơ cấp nghề cho học viên lái xe ô tô {3} - {4} và chưa dự thi, thi lại được thành lập theo quyết định số {5} {6} của Tổng giám đốc {7}, Hội đồng thi đã họp toàn thể xét công nhận kỳ thi tốt nghiệp, thành phần gồm có:"
                                        , DateTime.Today.Day.ToString()
                                        , DateTime.Today.Month.ToString()
                                        , DateTime.Today.Year.ToString()
                                        , data_ttn.Tables[0].Rows[i]["DDTTN_QD_TENKHOA"].ToString()
                                        , data_ttn.Tables[0].Rows[i]["DS_KH_TEN"].ToString()
                                        , data_ttn.Tables[0].Rows[i]["DDTTN_QD_SO_QD"].ToString()
                                        , data_ttn.Tables[0].Rows[i]["DDTTN_QD_NGAY_QD"].ToString()
                                        , data_ttn.Tables[0].Rows[i]["DVGTVT_TEN"].ToString());
                                }
                                StringBuilder strHoiDong = new StringBuilder();
                                strHoiDong.Append(string.Format("Hội đồng thi tốt nghiệp: {0}", Environment.NewLine));
                                for (int i = 0; i < data_ttn.Tables[1].Rows.Count; i++)
                                {
                                    strHoiDong.Append(string.Format("{0}. {1}           {2} {3}"
                                        , data_ttn.Tables[1].Rows[i]["STT_HD"] == null ? "" : data_ttn.Tables[1].Rows[i]["STT_HD"].ToString()
                                        , data_ttn.Tables[1].Rows[i]["SHV_HOTEN"] == null ? "" : data_ttn.Tables[1].Rows[i]["SHV_HOTEN"].ToString()
                                        , data_ttn.Tables[1].Rows[i]["CVSHV_TEN"] == null ? "" : data_ttn.Tables[1].Rows[i]["CVSHV_TEN"].ToString()
                                        , Environment.NewLine));
                                }
                                strHoiDong.Append("Và các cán bộ trong tổ chấm thi tốt nghiệp.");
                                myWorksheet.Cells[6, 1].Value = strHoiDong == null ? "" : strHoiDong.ToString();
                                int record_DsHocVien = 10;
                                // int rowstart = 10;
                                for (int i = 0; i < data_ttn.Tables[2].Rows.Count; i++)
                                {
                                    myWorksheet.Cells[record_DsHocVien, 1].Value = data_ttn.Tables[2].Rows[i]["STT"] == null ? "" : data_ttn.Tables[2].Rows[i]["STT"].ToString();
                                    myWorksheet.Cells[record_DsHocVien, 2].Value = data_ttn.Tables[2].Rows[i]["HV_HOTEN"] == null ? "" : data_ttn.Tables[2].Rows[i]["HV_HOTEN"].ToString();
                                    myWorksheet.Cells[record_DsHocVien, 3].Value = data_ttn.Tables[2].Rows[i]["HV_SBD"] == null ? "" : data_ttn.Tables[2].Rows[i]["HV_SBD"].ToString();
                                    myWorksheet.Cells[record_DsHocVien, 4].Value = data_ttn.Tables[2].Rows[i]["HV_NOITT"] == null ? "" : data_ttn.Tables[2].Rows[i]["HV_NOITT"].ToString();
                                    myWorksheet.Cells[record_DsHocVien, 5].Value = data_ttn.Tables[2].Rows[i]["DTTN_HGPLX_MA"] == null ? "" : data_ttn.Tables[2].Rows[i]["DTTN_HGPLX_MA"].ToString();
                                    // myWorksheet.Cells[record_DsHocVien, 6].Value = data_ttn.Tables[2].Rows[i]["GHICHU"] == null ? "" : data_ttn.Tables[2].Rows[i]["GHICHU"].ToString();
                                    record_DsHocVien++;
                                }
                                excelPackage.Save();
                            }
                            string contentType = string.Empty;
                            string CurrentFileName = Server.MapPath(@"\Templates\GPS_Excel\CB_DonViHetHanGiayPhepNEW.xlsx");
                            if (CurrentFileName.Contains(".xlsx"))
                            {
                                contentType = "application/msexcel";
                            }
                            return File(CurrentFileName, contentType, string.Format("BienBanHocVienTruotThiTotNghiep_{0}_{1}_{2}.xlsx", strDVGTVT_TEN, strKH_TEN, string.Concat(DateTime.Now.ToShortDateString().Replace("/", "_"))));

                        }

                    case "Học viên vắng thi tốt nghiệp - Thực hành đường":
                        {
                            DataSet data_ttn = GetLstDanhSach_VangThi_TD(SearchModel);
                            if (data_ttn == null)
                                return View(SearchModel);
                            FileInfo template = new FileInfo(Server.MapPath(@"\Templates\GPS_Excel\DanhSachVangThiTotNghiep_ThucHanhDuong.xlsx"));
                            FileInfo newFile = new FileInfo(Server.MapPath(@"\Templates\GPS_Excel\CB_DonViHetHanGiayPhepNEW.xlsx"));
                            string strDVGTVT_TEN = "", strKH_TEN = "";
                            using (OfficeOpenXml.ExcelPackage excelPackage = new OfficeOpenXml.ExcelPackage(newFile, template))
                            {
                                ExcelWorkbook myWorkbook = excelPackage.Workbook;
                                ExcelWorksheet myWorksheet = myWorkbook.Worksheets["Sheet1"];
                                for (int i = 0; i < data_ttn.Tables[0].Rows.Count; i++)
                                {
                                    strDVGTVT_TEN = data_ttn.Tables[0].Rows[i]["DVGTVT_TEN"] == null ? "" : data_ttn.Tables[0].Rows[i]["DVGTVT_TEN"].ToString();
                                    myWorksheet.Cells[1, 1].Value = strDVGTVT_TEN;
                                    strKH_TEN = data_ttn.Tables[0].Rows[i]["DDTTN_QD_TENKHOA"].ToString();
                                    myWorksheet.Cells[5, 1].Value = string.Format("Hôm nay, ngày {0} tháng {1} năm {2}, vào hồi 11 giờ 30 phút. Hội đồng thi tốt nghiệp cấp chứng chỉ sơ cấp nghề cho học viên lái xe ô tô {3} - {4} và chưa dự thi, thi lại được thành lập theo quyết định số {5} {6} của Tổng giám đốc {7}, Hội đồng thi đã họp toàn thể xét công nhận kỳ thi tốt nghiệp, thành phần gồm có:"
                                        , DateTime.Today.Day.ToString()
                                        , DateTime.Today.Month.ToString()
                                        , DateTime.Today.Year.ToString()
                                        , data_ttn.Tables[0].Rows[i]["DDTTN_QD_TENKHOA"].ToString()
                                        , data_ttn.Tables[0].Rows[i]["DS_KH_TEN"].ToString()
                                        , data_ttn.Tables[0].Rows[i]["DDTTN_QD_SO_QD"].ToString()
                                        , data_ttn.Tables[0].Rows[i]["DDTTN_QD_NGAY_QD"].ToString()
                                        , data_ttn.Tables[0].Rows[i]["DVGTVT_TEN"].ToString());
                                }
                                StringBuilder strHoiDong = new StringBuilder();
                                strHoiDong.Append(string.Format("Hội đồng thi tốt nghiệp: {0}", Environment.NewLine));
                                for (int i = 0; i < data_ttn.Tables[1].Rows.Count; i++)
                                {
                                    strHoiDong.Append(string.Format("{0}. {1}           {2} {3}"
                                        , data_ttn.Tables[1].Rows[i]["STT_HD"] == null ? "" : data_ttn.Tables[1].Rows[i]["STT_HD"].ToString()
                                        , data_ttn.Tables[1].Rows[i]["SHV_HOTEN"] == null ? "" : data_ttn.Tables[1].Rows[i]["SHV_HOTEN"].ToString()
                                        , data_ttn.Tables[1].Rows[i]["CVSHV_TEN"] == null ? "" : data_ttn.Tables[1].Rows[i]["CVSHV_TEN"].ToString()
                                        , Environment.NewLine));
                                }
                                strHoiDong.Append("Và các cán bộ trong tổ chấm thi tốt nghiệp.");
                                myWorksheet.Cells[6, 1].Value = strHoiDong == null ? "" : strHoiDong.ToString();
                                int record_DsHocVien = 10;
                                // int rowstart = 10;
                                for (int i = 0; i < data_ttn.Tables[2].Rows.Count; i++)
                                {
                                    myWorksheet.Cells[record_DsHocVien, 1].Value = data_ttn.Tables[2].Rows[i]["STT"] == null ? "" : data_ttn.Tables[2].Rows[i]["STT"].ToString();
                                    myWorksheet.Cells[record_DsHocVien, 2].Value = data_ttn.Tables[2].Rows[i]["HV_HOTEN"] == null ? "" : data_ttn.Tables[2].Rows[i]["HV_HOTEN"].ToString();
                                    myWorksheet.Cells[record_DsHocVien, 3].Value = data_ttn.Tables[2].Rows[i]["HV_SBD"] == null ? "" : data_ttn.Tables[2].Rows[i]["HV_SBD"].ToString();
                                    myWorksheet.Cells[record_DsHocVien, 4].Value = data_ttn.Tables[2].Rows[i]["HV_NOITT"] == null ? "" : data_ttn.Tables[2].Rows[i]["HV_NOITT"].ToString();
                                    myWorksheet.Cells[record_DsHocVien, 5].Value = data_ttn.Tables[2].Rows[i]["DTTN_HGPLX_MA"] == null ? "" : data_ttn.Tables[2].Rows[i]["DTTN_HGPLX_MA"].ToString();
                                    // myWorksheet.Cells[record_DsHocVien, 6].Value = data_ttn.Tables[2].Rows[i]["GHICHU"] == null ? "" : data_ttn.Tables[2].Rows[i]["GHICHU"].ToString();
                                    record_DsHocVien++;
                                }
                                excelPackage.Save();
                            }
                            string contentType = string.Empty;
                            string CurrentFileName = Server.MapPath(@"\Templates\GPS_Excel\CB_DonViHetHanGiayPhepNEW.xlsx");
                            if (CurrentFileName.Contains(".xlsx"))
                            {
                                contentType = "application/msexcel";
                            }
                            return File(CurrentFileName, contentType, string.Format("BienBanHocVienVangThiThucHanhDuong_{0}_{1}_{2}.xlsx", strDVGTVT_TEN, strKH_TEN, string.Concat(DateTime.Now.ToShortDateString().Replace("/", "_"))));

                        }

                    case "Học viên vắng thi tốt nghiệp - Chữ chi":
                        {
                            DataSet data_ttn = GetLstDanhSach_VangThi_CC(SearchModel);
                            if (data_ttn == null)
                                return View(SearchModel);
                            FileInfo template = new FileInfo(Server.MapPath(@"\Templates\GPS_Excel\DanhSachVangThiTotNghiep_ChuChi.xlsx"));
                            FileInfo newFile = new FileInfo(Server.MapPath(@"\Templates\GPS_Excel\CB_DonViHetHanGiayPhepNEW.xlsx"));
                            string strDVGTVT_TEN = "", strKH_TEN = "";
                            using (OfficeOpenXml.ExcelPackage excelPackage = new OfficeOpenXml.ExcelPackage(newFile, template))
                            {
                                ExcelWorkbook myWorkbook = excelPackage.Workbook;
                                ExcelWorksheet myWorksheet = myWorkbook.Worksheets["Sheet1"];
                                for (int i = 0; i < data_ttn.Tables[0].Rows.Count; i++)
                                {
                                    strDVGTVT_TEN = data_ttn.Tables[0].Rows[i]["DVGTVT_TEN"] == null ? "" : data_ttn.Tables[0].Rows[i]["DVGTVT_TEN"].ToString();
                                    myWorksheet.Cells[1, 1].Value = strDVGTVT_TEN;
                                    strKH_TEN = data_ttn.Tables[0].Rows[i]["DDTTN_QD_TENKHOA"].ToString();
                                    myWorksheet.Cells[5, 1].Value = string.Format("Hôm nay, ngày {0} tháng {1} năm {2}, vào hồi 11 giờ 30 phút. Hội đồng thi tốt nghiệp cấp chứng chỉ sơ cấp nghề cho học viên lái xe ô tô {3} - {4} và chưa dự thi, thi lại được thành lập theo quyết định số {5} {6} của Tổng giám đốc {7}, Hội đồng thi đã họp toàn thể xét công nhận kỳ thi tốt nghiệp, thành phần gồm có:"
                                        , DateTime.Today.Day.ToString()
                                        , DateTime.Today.Month.ToString()
                                        , DateTime.Today.Year.ToString()
                                        , data_ttn.Tables[0].Rows[i]["DDTTN_QD_TENKHOA"].ToString()
                                        , data_ttn.Tables[0].Rows[i]["DS_KH_TEN"].ToString()
                                        , data_ttn.Tables[0].Rows[i]["DDTTN_QD_SO_QD"].ToString()
                                        , data_ttn.Tables[0].Rows[i]["DDTTN_QD_NGAY_QD"].ToString()
                                        , data_ttn.Tables[0].Rows[i]["DVGTVT_TEN"].ToString());
                                }
                                StringBuilder strHoiDong = new StringBuilder();
                                strHoiDong.Append(string.Format("Hội đồng thi tốt nghiệp: {0}", Environment.NewLine));
                                for (int i = 0; i < data_ttn.Tables[1].Rows.Count; i++)
                                {
                                    strHoiDong.Append(string.Format("{0}. {1}           {2} {3}"
                                        , data_ttn.Tables[1].Rows[i]["STT_HD"] == null ? "" : data_ttn.Tables[1].Rows[i]["STT_HD"].ToString()
                                        , data_ttn.Tables[1].Rows[i]["SHV_HOTEN"] == null ? "" : data_ttn.Tables[1].Rows[i]["SHV_HOTEN"].ToString()
                                        , data_ttn.Tables[1].Rows[i]["CVSHV_TEN"] == null ? "" : data_ttn.Tables[1].Rows[i]["CVSHV_TEN"].ToString()
                                        , Environment.NewLine));
                                }
                                strHoiDong.Append("Và các cán bộ trong tổ chấm thi tốt nghiệp.");
                                myWorksheet.Cells[6, 1].Value = strHoiDong == null ? "" : strHoiDong.ToString();
                                int record_DsHocVien = 10;
                                // int rowstart = 10;
                                for (int i = 0; i < data_ttn.Tables[2].Rows.Count; i++)
                                {
                                    myWorksheet.Cells[record_DsHocVien, 1].Value = data_ttn.Tables[2].Rows[i]["STT"] == null ? "" : data_ttn.Tables[2].Rows[i]["STT"].ToString();
                                    myWorksheet.Cells[record_DsHocVien, 2].Value = data_ttn.Tables[2].Rows[i]["HV_HOTEN"] == null ? "" : data_ttn.Tables[2].Rows[i]["HV_HOTEN"].ToString();
                                    myWorksheet.Cells[record_DsHocVien, 3].Value = data_ttn.Tables[2].Rows[i]["HV_SBD"] == null ? "" : data_ttn.Tables[2].Rows[i]["HV_SBD"].ToString();
                                    myWorksheet.Cells[record_DsHocVien, 4].Value = data_ttn.Tables[2].Rows[i]["HV_NOITT"] == null ? "" : data_ttn.Tables[2].Rows[i]["HV_NOITT"].ToString();
                                    myWorksheet.Cells[record_DsHocVien, 5].Value = data_ttn.Tables[2].Rows[i]["DTTN_HGPLX_MA"] == null ? "" : data_ttn.Tables[2].Rows[i]["DTTN_HGPLX_MA"].ToString();
                                    //myWorksheet.Cells[record_DsHocVien, 6].Value = data_ttn.Tables[2].Rows[i]["GHICHU"] == null ? "" : data_ttn.Tables[2].Rows[i]["GHICHU"].ToString();
                                    record_DsHocVien++;
                                }
                                excelPackage.Save();
                            }
                            string contentType = string.Empty;
                            string CurrentFileName = Server.MapPath(@"\Templates\GPS_Excel\CB_DonViHetHanGiayPhepNEW.xlsx");
                            if (CurrentFileName.Contains(".xlsx"))
                            {
                                contentType = "application/msexcel";
                            }
                            return File(CurrentFileName, contentType, string.Format("BienBanHocVienVangThiChuChi_{0}_{1}_{2}.xlsx", strDVGTVT_TEN, strKH_TEN, string.Concat(DateTime.Now.ToShortDateString().Replace("/", "_"))));

                        }

                    case "Học viên trượt thi lý thuyết":
                        {
                            DataSet data_ttn = GetLstDanhSach_TruotThi_LT(SearchModel);
                            if (data_ttn == null)
                                return View(SearchModel);
                            FileInfo template = new FileInfo(Server.MapPath(@"\Templates\GPS_Excel\DanhSachTruotThiTotNghiep_LyThuyet.xlsx"));
                            FileInfo newFile = new FileInfo(Server.MapPath(@"\Templates\GPS_Excel\CB_DonViHetHanGiayPhepNEW.xlsx"));
                            string strDVGTVT_Ten = "", strKhoaHoc_Ten = "";
                            using (OfficeOpenXml.ExcelPackage excelPackage = new OfficeOpenXml.ExcelPackage(newFile, template))
                            {
                                ExcelWorkbook myWorkbook = excelPackage.Workbook;
                                ExcelWorksheet myWorksheet = myWorkbook.Worksheets["Sheet1"];

                                for (int i = 0; i < data_ttn.Tables[0].Rows.Count; i++)
                                {
                                    strDVGTVT_Ten = data_ttn.Tables[0].Rows[i]["DVGTVT_TEN"] == null ? "" : data_ttn.Tables[0].Rows[i]["DVGTVT_TEN"].ToString();
                                    strKhoaHoc_Ten = data_ttn.Tables[0].Rows[i]["DDTTN_QD_TENKHOA"].ToString();
                                    myWorksheet.Cells[1, 1].Value = strDVGTVT_Ten;
                                    myWorksheet.Cells[5, 1].Value = string.Format("Hôm nay, ngày {0} tháng {1} năm {2}, vào hồi 11 giờ 30 phút. Hội đồng thi tốt nghiệp cấp chứng chỉ sơ cấp nghề cho học viên lái xe ô tô {3} - {4} và chưa dự thi, thi lại được thành lập theo quyết định số {5} {6} của Tổng giám đốc {7}, Hội đồng thi đã họp toàn thể xét công nhận kỳ thi tốt nghiệp, thành phần gồm có:"
                                        , DateTime.Today.Day.ToString()
                                        , DateTime.Today.Month.ToString()
                                        , DateTime.Today.Year.ToString()
                                        , data_ttn.Tables[0].Rows[i]["DDTTN_QD_TENKHOA"].ToString()
                                        , data_ttn.Tables[0].Rows[i]["DS_KH_TEN"].ToString()
                                        , data_ttn.Tables[0].Rows[i]["DDTTN_QD_SO_QD"].ToString()
                                        , data_ttn.Tables[0].Rows[i]["DDTTN_QD_NGAY_QD"].ToString()
                                        , data_ttn.Tables[0].Rows[i]["DVGTVT_TEN"].ToString());
                                }
                                StringBuilder strHoiDong = new StringBuilder();
                                strHoiDong.Append(string.Format("Hội đồng thi tốt nghiệp: {0}", Environment.NewLine));
                                for (int i = 0; i < data_ttn.Tables[1].Rows.Count; i++)
                                {
                                    strHoiDong.Append(string.Format("{0}. {1}           {2} {3}"
                                        , data_ttn.Tables[1].Rows[i]["STT_HD"] == null ? "" : data_ttn.Tables[1].Rows[i]["STT_HD"].ToString()
                                        , data_ttn.Tables[1].Rows[i]["SHV_HOTEN"] == null ? "" : data_ttn.Tables[1].Rows[i]["SHV_HOTEN"].ToString()
                                        , data_ttn.Tables[1].Rows[i]["CVSHV_TEN"] == null ? "" : data_ttn.Tables[1].Rows[i]["CVSHV_TEN"].ToString()
                                        , Environment.NewLine));
                                }
                                strHoiDong.Append("Và các cán bộ trong tổ chấm thi tốt nghiệp.");
                                myWorksheet.Cells[6, 1].Value = strHoiDong == null ? "" : strHoiDong.ToString();
                                int record_DsHocVien = 10;
                                // int rowstart = 10;
                                for (int i = 0; i < data_ttn.Tables[2].Rows.Count; i++)
                                {
                                    myWorksheet.Cells[record_DsHocVien, 1].Value = data_ttn.Tables[2].Rows[i]["STT"] == null ? "" : data_ttn.Tables[2].Rows[i]["STT"].ToString();
                                    myWorksheet.Cells[record_DsHocVien, 2].Value = data_ttn.Tables[2].Rows[i]["HV_HOTEN"] == null ? "" : data_ttn.Tables[2].Rows[i]["HV_HOTEN"].ToString();
                                    myWorksheet.Cells[record_DsHocVien, 3].Value = data_ttn.Tables[2].Rows[i]["HV_SBD"] == null ? "" : data_ttn.Tables[2].Rows[i]["HV_SBD"].ToString();
                                    myWorksheet.Cells[record_DsHocVien, 4].Value = data_ttn.Tables[2].Rows[i]["HV_NOITT"] == null ? "" : data_ttn.Tables[2].Rows[i]["HV_NOITT"].ToString();
                                    myWorksheet.Cells[record_DsHocVien, 5].Value = data_ttn.Tables[2].Rows[i]["DTTN_HGPLX_MA"] == null ? "" : data_ttn.Tables[2].Rows[i]["DTTN_HGPLX_MA"].ToString();
                                    //myWorksheet.Cells[record_DsHocVien, 6].Value = data_ttn.Tables[2].Rows[i]["GHICHU"] == null ? "" : data_ttn.Tables[2].Rows[i]["GHICHU"].ToString();
                                    record_DsHocVien++;
                                }
                                excelPackage.Save();
                            }
                            string contentType = string.Empty;
                            string CurrentFileName = Server.MapPath(@"\Templates\GPS_Excel\CB_DonViHetHanGiayPhepNEW.xlsx");
                            if (CurrentFileName.Contains(".xlsx"))
                            {
                                contentType = "application/msexcel";
                            }
                            return File(CurrentFileName, contentType, string.Format("BienBanHocVienTruotThiLyThuyet_{0}_{1}_{2}.xlsx", strDVGTVT_Ten, strKhoaHoc_Ten, string.Concat(DateTime.Now.ToShortDateString().Replace("/", "_"))));

                        }
                    case "Học viên trượt thi thực hành":
                        {
                            DataSet data_ttn = GetLstDanhSach_TruotThi_LT(SearchModel);
                            if (data_ttn == null)
                                return View(SearchModel);
                            FileInfo template = new FileInfo(Server.MapPath(@"\Templates\GPS_Excel\DanhSachTruotThiTotNghiep_ThucHanh.xlsx"));
                            FileInfo newFile = new FileInfo(Server.MapPath(@"\Templates\GPS_Excel\CB_DonViHetHanGiayPhepNEW.xlsx"));
                            string strDVGTVT_TEN = "", strKH_TEN = "";
                            using (OfficeOpenXml.ExcelPackage excelPackage = new OfficeOpenXml.ExcelPackage(newFile, template))
                            {
                                ExcelWorkbook myWorkbook = excelPackage.Workbook;
                                ExcelWorksheet myWorksheet = myWorkbook.Worksheets["Sheet1"];

                                for (int i = 0; i < data_ttn.Tables[0].Rows.Count; i++)
                                {
                                    strDVGTVT_TEN = data_ttn.Tables[0].Rows[i]["DVGTVT_TEN"] == null ? "" : data_ttn.Tables[0].Rows[i]["DVGTVT_TEN"].ToString();
                                    strKH_TEN = data_ttn.Tables[0].Rows[i]["DDTTN_QD_TENKHOA"].ToString();
                                    myWorksheet.Cells[1, 1].Value = strDVGTVT_TEN;
                                    myWorksheet.Cells[5, 1].Value = string.Format("Hôm nay, ngày {0} tháng {1} năm {2}, vào hồi 11 giờ 30 phút. Hội đồng thi tốt nghiệp cấp chứng chỉ sơ cấp nghề cho học viên lái xe ô tô {3} - {4} và chưa dự thi, thi lại được thành lập theo quyết định số {5} {6} của Tổng giám đốc {7}, Hội đồng thi đã họp toàn thể xét công nhận kỳ thi tốt nghiệp, thành phần gồm có:"
                                        , DateTime.Today.Day.ToString()
                                        , DateTime.Today.Month.ToString()
                                        , DateTime.Today.Year.ToString()
                                        , data_ttn.Tables[0].Rows[i]["DDTTN_QD_TENKHOA"].ToString()
                                        , data_ttn.Tables[0].Rows[i]["DS_KH_TEN"].ToString()
                                        , data_ttn.Tables[0].Rows[i]["DDTTN_QD_SO_QD"].ToString()
                                        , data_ttn.Tables[0].Rows[i]["DDTTN_QD_NGAY_QD"].ToString()
                                        , data_ttn.Tables[0].Rows[i]["DVGTVT_TEN"].ToString());
                                }
                                StringBuilder strHoiDong = new StringBuilder();
                                strHoiDong.Append(string.Format("Hội đồng thi tốt nghiệp: {0}", Environment.NewLine));
                                for (int i = 0; i < data_ttn.Tables[1].Rows.Count; i++)
                                {
                                    strHoiDong.Append(string.Format("{0}. {1}           {2} {3}"
                                        , data_ttn.Tables[1].Rows[i]["STT_HD"] == null ? "" : data_ttn.Tables[1].Rows[i]["STT_HD"].ToString()
                                        , data_ttn.Tables[1].Rows[i]["SHV_HOTEN"] == null ? "" : data_ttn.Tables[1].Rows[i]["SHV_HOTEN"].ToString()
                                        , data_ttn.Tables[1].Rows[i]["CVSHV_TEN"] == null ? "" : data_ttn.Tables[1].Rows[i]["CVSHV_TEN"].ToString()
                                        , Environment.NewLine));
                                }
                                strHoiDong.Append("Và các cán bộ trong tổ chấm thi tốt nghiệp.");
                                myWorksheet.Cells[6, 1].Value = strHoiDong == null ? "" : strHoiDong.ToString();
                                int record_DsHocVien = 10;
                                for (int i = 0; i < data_ttn.Tables[2].Rows.Count; i++)
                                {
                                    myWorksheet.Cells[record_DsHocVien, 1].Value = data_ttn.Tables[2].Rows[i]["STT"] == null ? "" : data_ttn.Tables[2].Rows[i]["STT"].ToString();
                                    myWorksheet.Cells[record_DsHocVien, 2].Value = data_ttn.Tables[2].Rows[i]["HV_HOTEN"] == null ? "" : data_ttn.Tables[2].Rows[i]["HV_HOTEN"].ToString();
                                    myWorksheet.Cells[record_DsHocVien, 3].Value = data_ttn.Tables[2].Rows[i]["HV_SBD"] == null ? "" : data_ttn.Tables[2].Rows[i]["HV_SBD"].ToString();
                                    myWorksheet.Cells[record_DsHocVien, 4].Value = data_ttn.Tables[2].Rows[i]["HV_NOITT"] == null ? "" : data_ttn.Tables[2].Rows[i]["HV_NOITT"].ToString();
                                    myWorksheet.Cells[record_DsHocVien, 5].Value = data_ttn.Tables[2].Rows[i]["DTTN_HGPLX_MA"] == null ? "" : data_ttn.Tables[2].Rows[i]["DTTN_HGPLX_MA"].ToString();
                                    // myWorksheet.Cells[record_DsHocVien, 6].Value = data_ttn.Tables[2].Rows[i]["GHICHU"] == null ? "" : data_ttn.Tables[2].Rows[i]["GHICHU"].ToString();
                                    record_DsHocVien++;
                                }
                                excelPackage.Save();
                            }
                            string contentType = string.Empty;
                            string CurrentFileName = Server.MapPath(@"\Templates\GPS_Excel\CB_DonViHetHanGiayPhepNEW.xlsx");
                            if (CurrentFileName.Contains(".xlsx"))
                            {
                                contentType = "application/msexcel";
                            }
                            return File(CurrentFileName, contentType, string.Format("BienBanHocVienTruotThiThucHanh_{0}_{1}_{2}.xlsx", strDVGTVT_TEN, strKH_TEN, string.Concat(DateTime.Now.ToShortDateString().Replace("/", "_"))));

                        }

                }

            }
            //else if (SearchModel.ExportButton == "Học viên vắng thi tốt nghiệp - Thực hành hình")
            //{
            //       }
            //else if (SearchModel.ExportButton == "Học Viên trượt tốt nghiêp")
            //{
            //      }
            //else if (SearchModel.ExportButton == "Học viên vắng thi tốt nghiệp - Thực hành đường")
            //{
            //     }
            //else if (SearchModel.ExportButton == "Học viên vắng thi tốt nghiệp - Chữ chi")
            //{
            //     }
            //else if (SearchModel.ExportButton == "Học viên trượt thi lý thuyết")
            //{
            //     }
            //else if (SearchModel.ExportButton == "Học viên trượt thi thực hành")
            //{
            //     }
            else if (SearchModel.ExportButton == "In danh sách học viên tốt nghiệp")
            {
                DataSet data_hvtn = GetListDanhSachHocVienTotNghiep(SearchModel);
                if (data_hvtn == null)
                    return View(SearchModel);
                string FileName = "";
                FileInfo template = new FileInfo(Server.MapPath(@"\Templates\GPS_Excel\DanhSachHocVienTotNghiep.xlsx"));
                FileInfo newFile = new FileInfo(Server.MapPath(@"\Templates\ExcelPackageTemplate.xlsx"));
                string strDVGTVT_TEN = "", strKH_Ten = "";
                using (OfficeOpenXml.ExcelPackage excelPackage = new OfficeOpenXml.ExcelPackage(newFile, template))
                {

                    ExcelWorkbook myWorkbook = excelPackage.Workbook;
                    ExcelWorksheet myWorksheet = myWorkbook.Worksheets["Sheet1"];
                    for (int i = 0; i < data_hvtn.Tables[0].Rows.Count; i++)
                    {
                        strDVGTVT_TEN = data_hvtn.Tables[0].Rows[i]["DVGTVT_TEN"] == null ? "" : data_hvtn.Tables[0].Rows[i]["DVGTVT_TEN"].ToString();
                        strKH_Ten = data_hvtn.Tables[0].Rows[i]["DDTTN_QD_TENKHOA"] == null ? "" : data_hvtn.Tables[0].Rows[i]["DDTTN_QD_TENKHOA"].ToString();
                    }
                    myWorksheet.Cells[1, 2].Value = strDVGTVT_TEN;
                    myWorksheet.Cells[5, 1].Value = strKH_Ten;
                    int record_DsHocVien = 8;
                    for (int i = 0; i < data_hvtn.Tables[1].Rows.Count; i++)
                    {
                        myWorksheet.Cells[record_DsHocVien, 1].Value = data_hvtn.Tables[1].Rows[i]["STT"] == null ? "" : data_hvtn.Tables[2].Rows[1]["STT"].ToString();
                        myWorksheet.Cells[record_DsHocVien, 2].Value = data_hvtn.Tables[1].Rows[i]["HV_SBD"] == null ? "" : data_hvtn.Tables[1].Rows[i]["HV_SBD"].ToString();
                        myWorksheet.Cells[record_DsHocVien, 3].Value = data_hvtn.Tables[1].Rows[i]["HV_HOTEN"] == null ? "" : data_hvtn.Tables[1].Rows[i]["HV_HOTEN"].ToString();
                        myWorksheet.Cells[record_DsHocVien, 4].Value = data_hvtn.Tables[1].Rows[i]["HV_NOITT"] == null ? "" : data_hvtn.Tables[1].Rows[i]["HV_NOITT"].ToString();
                        myWorksheet.Cells[record_DsHocVien, 5].Value = data_hvtn.Tables[1].Rows[i]["HV_NGAYSINH"] == null ? "" : data_hvtn.Tables[1].Rows[i]["HV_NGAYSINH"].ToString();
                        myWorksheet.Cells[record_DsHocVien, 6].Value = data_hvtn.Tables[1].Rows[i]["DTTN_HGPLX_MA"] == null ? "" : data_hvtn.Tables[1].Rows[i]["DTTN_HGPLX_MA"].ToString();
                        //myWorksheet.Cells[record_DsHocVien, 1).StyleID = myWorksheet.Cells[rowstart, 1).StyleID;
                        record_DsHocVien++;
                    }
                    excelPackage.Save();
                }

                string contentType = string.Empty;
                string CurrentFileName = Server.MapPath(@"\Templates\ExcelPackageTemplate.xlsx");
                FileName = string.Format("DanhSachHocVienTotNghiep_{0}_{1}_{2}.xlsx", strDVGTVT_TEN, strKH_Ten, DateTime.Now.ToShortDateString().Replace("/", "_"));
                if (CurrentFileName.Contains(".xlsx"))
                {
                    contentType = "application/msexcel";
                }
                return File(CurrentFileName, contentType, FileName);
            }
            else if (SearchModel.ExportButton == "In danh sách kết quả tốt nghiệp")
            {
                DataSet data_ketquatotnghiep = GetListDanhSachKetQuaTotNghiep(SearchModel);
                if (data_ketquatotnghiep == null)
                    return View(SearchModel);
                string strDVGTVT_TEN = "", strKH_Ten = "";
                FileInfo template = new FileInfo(Server.MapPath(@"\Templates\GPS_Excel\DanhSachKetQuaTotNghiep.xlsx"));
                FileInfo newFile = new FileInfo(Server.MapPath(@"\Templates\GPS_Excel\CB_DonViHetHanGiayPhepNEW.xlsx"));
                using (OfficeOpenXml.ExcelPackage excelPackage = new OfficeOpenXml.ExcelPackage(newFile, template))
                {
                    ExcelWorkbook myWorkbook = excelPackage.Workbook;
                    ExcelWorksheet myWorksheet = myWorkbook.Worksheets["Sheet1"];

                    for (int i = 0; i < data_ketquatotnghiep.Tables[0].Rows.Count; i++)
                    {
                        strDVGTVT_TEN = data_ketquatotnghiep.Tables[0].Rows[i]["DVGTVT_TEN"] == null ? "" : data_ketquatotnghiep.Tables[0].Rows[i]["DVGTVT_TEN"].ToString();
                        strKH_Ten = data_ketquatotnghiep.Tables[0].Rows[i]["DDTTN_QD_TENKHOA"] == null ? "" : data_ketquatotnghiep.Tables[0].Rows[i]["DDTTN_QD_TENKHOA"].ToString();
                    }
                    myWorksheet.Cells[1, 2].Value = strDVGTVT_TEN;
                    myWorksheet.Cells[5, 1].Value = strKH_Ten;
                    myWorksheet.Cells[3, 5].Value = string.Format("TP Vinh ngày {0} tháng {1} năm {2}", DateTime.Today.Day.ToString(), DateTime.Today.Month.ToString(), DateTime.Today.Year.ToString());
                    int record_DsHocVien = 8;
                    int rowstart = 10;
                    int icount = 1;
                    for (int i = 0; i < data_ketquatotnghiep.Tables[1].Rows.Count; i++)
                    {
                        myWorksheet.Cells[record_DsHocVien, 1].Value = icount.ToString(); //data_ketquatotnghiep.Tables[1].Rows[i]["STT"] == null ? "" : data_ketquatotnghiep.Tables[1].Rows[1]["STT"].ToString();
                        myWorksheet.Cells[record_DsHocVien, 2].Value = data_ketquatotnghiep.Tables[1].Rows[i]["HV_SBD"] == null ? "" : data_ketquatotnghiep.Tables[1].Rows[i]["HV_SBD"].ToString();
                        myWorksheet.Cells[record_DsHocVien, 3].Value = data_ketquatotnghiep.Tables[1].Rows[i]["HV_HOTEN"] == null ? "" : data_ketquatotnghiep.Tables[1].Rows[i]["HV_HOTEN"].ToString();
                        myWorksheet.Cells[record_DsHocVien, 4].Value = data_ketquatotnghiep.Tables[1].Rows[i]["HV_NGAYSINH"] == null ? "" : data_ketquatotnghiep.Tables[1].Rows[i]["HV_NGAYSINH"].ToString();
                        myWorksheet.Cells[record_DsHocVien, 5].Value = data_ketquatotnghiep.Tables[1].Rows[i]["HV_NOITT"] == null ? "" : data_ketquatotnghiep.Tables[1].Rows[i]["HV_NOITT"].ToString();
                        myWorksheet.Cells[record_DsHocVien, 6].Value = data_ketquatotnghiep.Tables[1].Rows[i]["HV_TRALOIDUNG"] == null ? "" : data_ketquatotnghiep.Tables[1].Rows[i]["HV_TRALOIDUNG"].ToString();
                        myWorksheet.Cells[record_DsHocVien, 7].Value = data_ketquatotnghiep.Tables[1].Rows[i]["HV_TRALOISAI"] == null ? "" : data_ketquatotnghiep.Tables[1].Rows[i]["HV_TRALOISAI"].ToString();
                        myWorksheet.Cells[record_DsHocVien, 8].Value = data_ketquatotnghiep.Tables[1].Rows[i]["HV_KHONGTRALOI"] == null ? "" : data_ketquatotnghiep.Tables[1].Rows[i]["HV_KHONGTRALOI"].ToString();
                        myWorksheet.Cells[record_DsHocVien, 9].Value = data_ketquatotnghiep.Tables[1].Rows[i]["HV_KETQUA"] == null ? "" : data_ketquatotnghiep.Tables[1].Rows[i]["HV_KETQUA"].ToString();
                        myWorksheet.Cells[record_DsHocVien, 1].StyleID = myWorksheet.Cells[rowstart, 1].StyleID;
                        record_DsHocVien++;
                        icount++;
                    }
                    excelPackage.Save();
                }
                string contentType = string.Empty;
                string CurrentFileName = Server.MapPath(@"\Templates\GPS_Excel\CB_DonViHetHanGiayPhepNEW.xlsx");
                if (CurrentFileName.Contains(".xlsx"))
                {
                    contentType = "application/msexcel";
                }
                return File(CurrentFileName, contentType, string.Format("DanhSachKetQuaTotNghiep_{0}_{1}_{2}.xlsx", strDVGTVT_TEN, strKH_Ten, DateTime.Now.ToShortDateString().Replace("/", "_")));
            }
            //else if (SearchModel.ExportButton == "Tìm kiếm")
            //{
            //    model = GetListSearchData(SearchModel);
            //}


            var pageIndex = SearchModel.Page ?? 1;
            SearchModel.SearchResults = model.ToPagedList(pageIndex, GPS.COMMON.Constants.PageSize);
            return View(SearchModel);
        }
        #endregion
        public List<Export_DS_HVDuTotNghiep> GetListData_DsHocVienDuTotNghiep(ViewModelKetQuaTotNghiep SearchModel)
        {
            var _pDVGTVT_MA = new OracleParameter("pDVGTVT_MA", OracleDbType.Varchar2, (SearchModel.pDVGTVT_MA == null ? DBNull.Value : (object)SearchModel.pDVGTVT_MA), ParameterDirection.Input);
            var _pKH_MA = new OracleParameter("pKH_MA", OracleDbType.Varchar2, (SearchModel.pKH_MA == null ? DBNull.Value : (object)SearchModel.pKH_MA.Trim()), ParameterDirection.Input);
            var _pQD_ID = new OracleParameter("pQD_ID", OracleDbType.Varchar2, (SearchModel.pQD_ID == null ? DBNull.Value : (object)SearchModel.pQD_ID.Trim()), ParameterDirection.Input);
            var _pRET = new OracleParameter("pRET", OracleDbType.RefCursor, ParameterDirection.Output);
            var entities = _db.DbContext.Database.SqlQuery<Export_DS_HVDuTotNghiep>("BEGIN GPS_DAOTAO.GPS_DAOTAO_DSHVDUTOTNGHIEP(:pDVGTVT_MA,:pKH_MA,:pQD_ID,:pRET); end;"
                                                                                                                            , _pDVGTVT_MA
                                                                                                                            , _pKH_MA
                                                                                                                            , _pQD_ID
                                                                                                                            , _pRET).ToList();
            return entities;
        }
        public DataSet GetLstDanhSachHocVienTruotTotNghiep(ViewModelKetQuaTotNghiep SearchModel)
        {
            DataSet ds = OracleHelper.ExecuteDataset(_db.DbContext.Database.Connection.ConnectionString, CommandType.StoredProcedure, "GPS_DAOTAO.GPS_DAOTAO_DSHVTHITRUOT_TN"
                , new OracleParameter("pDVGTVT_MA", OracleDbType.Varchar2, string.IsNullOrWhiteSpace(SearchModel.pDVGTVT_MA) ? DBNull.Value : (object)SearchModel.pDVGTVT_MA, ParameterDirection.Input)
                , new OracleParameter("pQD_ID", OracleDbType.Varchar2, string.IsNullOrWhiteSpace(SearchModel.pQD_ID) ? DBNull.Value : (object)SearchModel.pQD_ID, ParameterDirection.Input)
                , new OracleParameter("pRET_HEADER", OracleDbType.RefCursor, ParameterDirection.Output)
                , new OracleParameter("pRET_HOIDONG", OracleDbType.RefCursor, ParameterDirection.Output)
                , new OracleParameter("pRET_DSHOCVIEN", OracleDbType.RefCursor, ParameterDirection.Output));
            return ds;
        }
        public DataSet GetLstDanhSach_VangThi_LT(ViewModelKetQuaTotNghiep SearchModel)
        {
            DataSet ds = OracleHelper.ExecuteDataset(_db.DbContext.Database.Connection.ConnectionString, CommandType.StoredProcedure, "GPS_DAOTAO.GPS_DAOTAO_DSHVVANGTHI_LT"
                , new OracleParameter("pDVGTVT_MA", OracleDbType.Varchar2, string.IsNullOrWhiteSpace(SearchModel.pDVGTVT_MA) ? DBNull.Value : (object)SearchModel.pDVGTVT_MA, ParameterDirection.Input)
                , new OracleParameter("pQD_ID", OracleDbType.Varchar2, string.IsNullOrWhiteSpace(SearchModel.pQD_ID) ? DBNull.Value : (object)SearchModel.pQD_ID, ParameterDirection.Input)
                , new OracleParameter("pRET_HEADER", OracleDbType.RefCursor, ParameterDirection.Output)
                , new OracleParameter("pRET_HOIDONG", OracleDbType.RefCursor, ParameterDirection.Output)
                , new OracleParameter("pRET_DSHOCVIEN", OracleDbType.RefCursor, ParameterDirection.Output));
            return ds;
        }
        public DataSet GetLstDanhSach_VangThi_TH(ViewModelKetQuaTotNghiep SearchModel)
        {
            DataSet ds = OracleHelper.ExecuteDataset(_db.DbContext.Database.Connection.ConnectionString, CommandType.StoredProcedure, "GPS_DAOTAO.GPS_DAOTAO_DSHVVANGTHI_TH"
                , new OracleParameter("pDVGTVT_MA", OracleDbType.Varchar2, string.IsNullOrWhiteSpace(SearchModel.pDVGTVT_MA) ? DBNull.Value : (object)SearchModel.pDVGTVT_MA, ParameterDirection.Input)
                , new OracleParameter("pQD_ID", OracleDbType.Varchar2, string.IsNullOrWhiteSpace(SearchModel.pQD_ID) ? DBNull.Value : (object)SearchModel.pQD_ID, ParameterDirection.Input)
                , new OracleParameter("pRET_HEADER", OracleDbType.RefCursor, ParameterDirection.Output)
                , new OracleParameter("pRET_HOIDONG", OracleDbType.RefCursor, ParameterDirection.Output)
                , new OracleParameter("pRET_DSHOCVIEN", OracleDbType.RefCursor, ParameterDirection.Output));
            return ds;
        }
        public DataSet GetLstDanhSach_VangThi_TD(ViewModelKetQuaTotNghiep SearchModel)
        {
            DataSet ds = OracleHelper.ExecuteDataset(_db.DbContext.Database.Connection.ConnectionString, CommandType.StoredProcedure, "GPS_DAOTAO.GPS_DAOTAO_DSHVVANGTHI_TD"
                , new OracleParameter("pDVGTVT_MA", OracleDbType.Varchar2, string.IsNullOrWhiteSpace(SearchModel.pDVGTVT_MA) ? DBNull.Value : (object)SearchModel.pDVGTVT_MA, ParameterDirection.Input)
                , new OracleParameter("pQD_ID", OracleDbType.Varchar2, string.IsNullOrWhiteSpace(SearchModel.pQD_ID) ? DBNull.Value : (object)SearchModel.pQD_ID, ParameterDirection.Input)
                , new OracleParameter("pRET_HEADER", OracleDbType.RefCursor, ParameterDirection.Output)
                , new OracleParameter("pRET_HOIDONG", OracleDbType.RefCursor, ParameterDirection.Output)
                , new OracleParameter("pRET_DSHOCVIEN", OracleDbType.RefCursor, ParameterDirection.Output));
            return ds;
        }
        public DataSet GetLstDanhSach_VangThi_CC(ViewModelKetQuaTotNghiep SearchModel)
        {
            DataSet ds = OracleHelper.ExecuteDataset(_db.DbContext.Database.Connection.ConnectionString, CommandType.StoredProcedure, "GPS_DAOTAO.GPS_DAOTAO_DSHVVANGTHI_CC"
                , new OracleParameter("pDVGTVT_MA", OracleDbType.Varchar2, string.IsNullOrWhiteSpace(SearchModel.pDVGTVT_MA) ? DBNull.Value : (object)SearchModel.pDVGTVT_MA, ParameterDirection.Input)
                , new OracleParameter("pQD_ID", OracleDbType.Varchar2, string.IsNullOrWhiteSpace(SearchModel.pQD_ID) ? DBNull.Value : (object)SearchModel.pQD_ID, ParameterDirection.Input)
                , new OracleParameter("pRET_HEADER", OracleDbType.RefCursor, ParameterDirection.Output)
                , new OracleParameter("pRET_HOIDONG", OracleDbType.RefCursor, ParameterDirection.Output)
                , new OracleParameter("pRET_DSHOCVIEN", OracleDbType.RefCursor, ParameterDirection.Output));
            return ds;
        }
        public DataSet GetLstDanhSach_TruotThi_LT(ViewModelKetQuaTotNghiep SearchModel)
        {
            DataSet ds = OracleHelper.ExecuteDataset(_db.DbContext.Database.Connection.ConnectionString, CommandType.StoredProcedure, "GPS_DAOTAO.GPS_DAOTAO_DSHVTHITRUOT_LT"
                , new OracleParameter("pDVGTVT_MA", OracleDbType.Varchar2, string.IsNullOrWhiteSpace(SearchModel.pDVGTVT_MA) ? DBNull.Value : (object)SearchModel.pDVGTVT_MA, ParameterDirection.Input)
                , new OracleParameter("pQD_ID", OracleDbType.Varchar2, string.IsNullOrWhiteSpace(SearchModel.pQD_ID) ? DBNull.Value : (object)SearchModel.pQD_ID, ParameterDirection.Input)
                , new OracleParameter("pRET_HEADER", OracleDbType.RefCursor, ParameterDirection.Output)
                , new OracleParameter("pRET_HOIDONG", OracleDbType.RefCursor, ParameterDirection.Output)
                , new OracleParameter("pRET_DSHOCVIEN", OracleDbType.RefCursor, ParameterDirection.Output));
            return ds;
        }
        public DataSet GetLstDanhSach_TruotThi_TH(ViewModelKetQuaTotNghiep SearchModel)
        {
            DataSet ds = OracleHelper.ExecuteDataset(_db.DbContext.Database.Connection.ConnectionString, CommandType.StoredProcedure, "GPS_DAOTAO.GPS_DAOTAO_DSHVTHITRUOT_TH"
                , new OracleParameter("pDVGTVT_MA", OracleDbType.Varchar2, string.IsNullOrWhiteSpace(SearchModel.pDVGTVT_MA) ? DBNull.Value : (object)SearchModel.pDVGTVT_MA, ParameterDirection.Input)
                , new OracleParameter("pQD_ID", OracleDbType.Varchar2, string.IsNullOrWhiteSpace(SearchModel.pQD_ID) ? DBNull.Value : (object)SearchModel.pQD_ID, ParameterDirection.Input)
                , new OracleParameter("pRET_HEADER", OracleDbType.RefCursor, ParameterDirection.Output)
                , new OracleParameter("pRET_HOIDONG", OracleDbType.RefCursor, ParameterDirection.Output)
                , new OracleParameter("pRET_DSHOCVIEN", OracleDbType.RefCursor, ParameterDirection.Output));
            return ds;
        }
        public DataSet GetListDanhSachHocVienTotNghiep(ViewModelKetQuaTotNghiep SearchModel)
        {
            DataSet ds = OracleHelper.ExecuteDataset(_db.DbContext.Database.Connection.ConnectionString, CommandType.StoredProcedure, "GPS_DAOTAO.GPS_DAOTAO_DSHVTOTNGHIEP"
                , new OracleParameter("pDVGTVT_MA", OracleDbType.Varchar2, string.IsNullOrWhiteSpace(SearchModel.pDVGTVT_MA) ? DBNull.Value : (object)SearchModel.pDVGTVT_MA, ParameterDirection.Input)
                , new OracleParameter("pQD_ID", OracleDbType.Varchar2, string.IsNullOrWhiteSpace(SearchModel.pQD_ID) ? DBNull.Value : (object)SearchModel.pQD_ID, ParameterDirection.Input)
                , new OracleParameter("pRET_HEADER", OracleDbType.RefCursor, ParameterDirection.Output)
                , new OracleParameter("pRET_DSHOCVIEN", OracleDbType.RefCursor, ParameterDirection.Output));
            return ds;
        }
        public DataSet GetListDanhSachKetQuaTotNghiep(ViewModelKetQuaTotNghiep SearchModel)
        {
            DataSet ds = OracleHelper.ExecuteDataset(_db.DbContext.Database.Connection.ConnectionString, CommandType.StoredProcedure, "GPS_DAOTAO.GPS_DAOTAO_KETQUATOTNGHIEP"
                , new OracleParameter("pDVGTVT_MA", OracleDbType.Varchar2, string.IsNullOrWhiteSpace(SearchModel.pDVGTVT_MA) ? DBNull.Value : (object)SearchModel.pDVGTVT_MA, ParameterDirection.Input)
                , new OracleParameter("pQD_ID", OracleDbType.Varchar2, string.IsNullOrWhiteSpace(SearchModel.pQD_ID) ? DBNull.Value : (object)SearchModel.pQD_ID, ParameterDirection.Input)
                , new OracleParameter("pRET_HEADER", OracleDbType.RefCursor, ParameterDirection.Output)
                , new OracleParameter("pRET_DSHOCVIEN", OracleDbType.RefCursor, ParameterDirection.Output));
            return ds;
        }

        public List<CrudmodelKetQuaTotNghiep> GetListSearchData(ViewModelKetQuaTotNghiep SearchModel)
        {
            var _pDVGTVT_MA = new OracleParameter("pDVGTVT_MA", OracleDbType.Varchar2, (SearchModel.pDVGTVT_MA == null ? DBNull.Value : (object)SearchModel.pDVGTVT_MA), ParameterDirection.Input);
            var _pQD_ID = new OracleParameter("pQD_ID", OracleDbType.Varchar2, (SearchModel.pQD_ID == null ? DBNull.Value : (object)SearchModel.pQD_ID.Trim()), ParameterDirection.Input);
            var _pKH_MA = new OracleParameter("pKH_MA", OracleDbType.Varchar2, (SearchModel.pKH_MA == null ? DBNull.Value : (object)SearchModel.pKH_MA), ParameterDirection.Input);
            var _pRET = new OracleParameter("pRET", OracleDbType.RefCursor, ParameterDirection.Output);
            var entities = _db.DbContext.Database.SqlQuery<CrudmodelKetQuaTotNghiep>("BEGIN GPS_DAOTAO.GPS_DAOTAO_SEARCH_KQTOTNGHIEP(:pDVGTVT_MA,:pQD_ID,:pKH_MA,:pRET); end;"
                                                                                                                            , _pDVGTVT_MA
                                                                                                                            , _pQD_ID
                                                                                                                            , _pKH_MA
                                                                                                                            , _pRET).ToList();
            return entities;
        }
    }
}